home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PCMania 73
/
PCMania CD73_1.iso
/
sharewar
/
varios
/
partial
/
REGALOS
/
VIRUS
/
FUNCION.TXT
< prev
next >
Wrap
Text File
|
1996-01-05
|
8KB
|
232 lines
---- FUNCIONES TRATADAS EN EL ARTICULO ----
Este artículo va destinado a todos aquellos que no dispongan de
información de las funciones utilizadas en este artículo. La explicación
de las funciones está sacada del Pc-Interno:
-------------------------- INTERRUPCION 21H ------------------------------
Función 4ch, Int 21h ( Terminar programa con código de fin )
--------------------
Mediante esta función se finaliza un programa.
La memoria RAM, que ocupa el programa, es liberada después de esta
función, de modo que se puede volver a asignar a otros programas
Entrada:
AH= 4ch
AL= codigo de fin
Salida No tiene
Codigo de fin -> 0: Fin normal
1: Fin por aparecer un carácter Control-C o activación de la
tecla Interr
2: Por error al acceder a un dispositivo
3: Por llamada a la función 31h o int 27h
Antes de pasar el control al programa invocador, se cierran todos los Handles
que fueron abiertos por este programa, y los archivos asociados con ellos.
Esto sin embargo no se aplica a archivos que se abrieron mediante FCB.
Función 2a, Int 21h ( Obtener fecha )
--------------------
Mediante este función se obtiene la fecha actual del sistema.
Entrada:
AH= 2ah
Salida AL = Dia de la semana ( Domingo=0, Lunes=1 ... )
CX = año
DH = mes
DL = dia
Función 09h, Int 21h ( Salida de una cadena de caracteres )
--------------------
Mediante la llamada de esta función se envía una cadena de caracteres en
el dispositivo estándar de salida, por ejemplo el monitor.
Entrada AH=09h
DS:DX= Puntero FAR sobre la cadena de caracteres
Salida No tiene
La cadena de caracteres ha de estar guardada en la memoria como una
secuencia de bytes, que contienen el código ASCII del carácter a enviar.
El final de la cadena de caracteres se le señaliza al DOS con un carácter $
( código ASCII 36 )
Función 4eh, Int 21h ( Busca primera entrada de directorio )
--------------------
Esta función busca un archivo determinado, además como se puede indicar
en CX el atributo determinado, también se puede buscar subdirectorios y
etiquetas de volumen
Entrada AH=4eh
CX= Atributo del archivo
DS:DX= Puntero FAR al buffer con el nombre de archivo
Salida Si no problema, flag de acarreo a 0
Si el flag de acarreo a 1: Error, en este caso
AX: Código de error
2: directorio no encontrado
18: no se encontró archivo con el atributo
indicado
Función 4fh, Int 21h ( Busca siguiente entrada de directorio )
--------------------
La diferencia con la anterior es la siguiente:
A la entrada se carga en AH=4fh y en la salida si el flag de acarreo está
a 1 en AX se pasa el valor 18, que indica que no se encontraron más
archivos con el atributo indicado.
En CX en estas dos últimas funciones se indica el atributo en cuestión
según la siguiente tabla:
Número de Bit Significado
-------------- -------------
0 Fichero de sólo lectura
1 Fichero oculto
2 Fichero de sistema
3 Etiqueta de volumen
4 Subdirectorio
5 Fichero sin archivar
Los archivos normales se buscan con el atributo 0. Si se colocan diferentes
bits en el campo de atributos, no solo se buscan los archivos especificados,
sino también todos los normales.
Función 3dh, Int 21h ( Abre Archivo (Handle) )
--------------------
Mediante esta función se abre un fichero ya existente.
Entrada AH=3dh
AL= Modo de Acceso
Bit 0-2: Permiso de lectura / escritura
000b = Archivo sólo puede ser leido
001b = Sólo puede ser escrito
010b = Puede ser leido y escrito
Bit 3: 0b
Bit 4-6: File-Sharing-Mode
000b= solo el programa actual puede acceder al archivo ( Compatibility-Mode)
001b= solo el programa actual puede acceder al archivo
010b= otro programa puede leer el archivo, pero no escribirlo
011b= otro programa puede escribir el archivo, pero no leerlo
100b= otro programa puede leer y escribir el archivo
Bit 7: Handle-Flag
0= también el programa hijo del programa actual puede acceder al Handle del archivo
1= solo el programa actual puede acceder al handle del archivo.
DS:DX= Puntero FAR al nombre de archivo
Salida Flag de Acarreo=0 O.K
Flag de Acarreo=1 Error, en este caso
AX = código de error
1: falta software de compartición de archivos
2: archivo no se encontró
3: directorio no encontrado archivo no existe
4: no quedan Handles-libres
5: Acceso Denegado
12: Modo de acceso no permitido
Función 3eh, Int 21h ( Cerrar Archivo (Handle) )
--------------------
Con esta función se cierra un archivo abierto anteriormente.
Entrada AH=3eh
BX= Handle a cerrar
Salida Flag de Carry=0 O.K
Flag de Carry=1: Error, en este caso
AX=6; Handle no permitido, o archivo asociado
no está abierto
Función 3fh, Int 21h ( Leer Archivo (Handle) )
--------------------
Mediante esta función se lee una cantidad determinada de bytes de un fichero
abierto anteriormente, estos bytes pueden ser almacenados en un buffer.
Entrada AH=3fh
BX= Handle del archivo o del dispositivo
CX=Numero de bytes a leer
DS:DX=Puntero FAR al buffer
Salida Si carry-flag=1, Error en este caso
AX= codigo de error
5: Acceso Denegado
6: Handle no permitido o archivo no abierto
Si carry-flag=0 O.K
AX=Número de bytes leidos
Función 42h, Int 21h ( Mover puntero de un archivo (Handle) )
--------------------
Mediante esta función se consigue un acceso aleatorio al archivo, ya que los
diferentes campos de datos ya no se han de leer en orden secuencial.
Entrada AH=42h
AL= Codigo de offset
0= Se refiere al principio del archivo
1= Se refiere a la posición del puntero de archivo
2= Se refiere al final del archivo
BX= Handle
CX= HI-WORD del offsets
DX= LO-WORD del offsets
Salida CF (carry flag) =0 O.K
DX= HI-WORD del puntero de archivo
AX= LO-WORD del puntero de archivo
CF=1 , en AX= codigo error
1: codigo de offset no permitido
6: Handle no permitido o archivo no abierto
Función 40h, Int 21h ( Escribir archivo (Handle) )
--------------------
Se escribe un número determinado de bytes en un archivo abierto anteriormente
desde un buffer.
Entrada AH=40h
BX= Handle del archivo o del dispositivo
CX= Cantidad de bytes a escribir
DS:DX= Puntero FAR al buffer
Salida CF=0 O.K
CF=1, Error en AX= codigo de error
5: Acceso denegado
6: Handle no permitido o archivo no abierto
Se dará cuenta que mostramos información de todas las funciones a las que
hemos tenido acceso, sin embargo si de verdad le gusta la programación, le
aconsejo que se haga pronto con algún manual que haga referencia de las
interrupciones del DOS, como las del Pc-Interno, o cualquier guía que podaís
encontrar por ahí, porque sinceramente este tipo de ficheros son un poco
aburridos de escribir.
HANDLER